Timestamped commentary system for video content

ABSTRACT

A video commentary system receives video content items from users in a community. Such video content items are presented to viewers in the community. The system presents submission controls through which the viewers can submit feedback related to specific time points within that presentation. The controls can be used to submit textual, video, or audio comments. The controls can include labeled buttons that viewers can activate to submit categorized comments. Each submission is associated with a timestamp corresponding to the current video frame. The user interface includes regions that display, in real-time, the submissions received from the viewers. Submissions can indicate their timestamps. A bar graph indicates, by category and by time interval, quantities of categorized comments that have been received relating to various time intervals in the presentation.

CLAIM OF PRIORITY

The present application claims priority under 35 U.S.C. §119(e) to U.S.Provisional Patent Application Ser. No. 61/704,178, filed Sep. 21, 2012,and titled “COMPUTER PROGRAM PRODUCT, SYSTEM, AND METHOD FOR USERS TOSHARE COMMENT ABOUT A VIDEOS CONTENT.” The entire contents of U.S.Provisional Patent Application Ser. No. 61/704,178 are incorporated byreference herein for all purposes.

FIELD OF THE INVENTION

The present application relates to the fields of on-line video storage,presentation, and annotation.

BACKGROUND

People serious about their craft are typically interested in improvingtheir presentations, especially when that craft involves communicationwith others. For example, a comedian might be interested in improvinghis comedic routine. He may be interested in making his routine asenjoyable as possible for his audience. For this purpose, someperformers seek critique of their performances from others. For example,a performer might invite people to come and watch his performance(possibly at no charge) in order to receive valuable feedback from thosepeople. Using the feedback, the performer might seek to customize hisfuture performances.

However, seeking such “test audiences” can be time-consuming. Performinglive in front of people who are present in an audience specifically forthe purpose of offering criticism, even if constructive, can sometimesbe nerve-wracking. The venues at which such test performances arepresented are unlikely to be available to the performer for free.Numerous difficulties attend the approaches that performers havesometimes used in the past in an attempt to hone their skills.

Often, performances are audio-visual in nature. Theoretically, aperformer might make a recording of his performance and send thatrecording to his friends or others who might be willing to watch andoffer feedback. Unfortunately, the channels for receiving feedbackrelative to such recorded presentations are not well developed. Often,even if the performer does receive feedback, such feedback often willnot be of the kind in which the performer was really interested.Furthermore, it can be difficult sometimes for the performer toascertain the specific portions of his performance to which variouscriticisms apply. All of these factors can combine to make thepresentation and feedback process rather ineffective.

SUMMARY

An on-line video commentary system receives video content items fromvarious users in an on-line community. The system presents such videocontent items as video presentations to various other users in thecommunity. Along with each such video presentation, the system presentssubmission controls through which the other users can submit feedbackrelated to specific time points within that presentation. The submissioncontrols can include controls for submitting textual, video, audio, ordrawing comments. The submission controls can include buttons labeled asdesired by the video presentation provider. Such buttons can beactivated by the various other users to submit categorized commentsquickly. The system can associate each submission with a timestamp thatcorresponds to the currently playing video frame. In addition to thesubmission controls, the user interface can include regions thatdisplay, in real-time, the submissions received from others in thecommunity. At least some of the submissions can indicate the timestampsfor those submissions. One such region can contain a bar graph thatindicates, by category and by time interval, quantities of categorizedcomments that have been received relating to various time intervals inthe presentation.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example of a video presentation userinterface that includes separate regions for timestamped comments and afeedback bar graph, according to an embodiment of the invention.

FIG. 2 is a diagram illustrating an example of a video content selectionuser interface that includes options for indicating a source from whicha video presentation is to be obtained, according to an embodiment ofthe invention.

FIG. 3 is a diagram illustrating an example of a video attributespecification user interface that includes controls for specifyingvarious attributes of video content that has been introduced into thetimestamped commentary system, according to an embodiment of theinvention.

FIG. 4 is a diagram illustrating an example of a video collection userinterface that lists video presentations that a particular user hasintroduced into the timestamped commentary system, according to anembodiment of the invention.

FIG. 5 is a flow diagram that illustrates a technique through which asubmission can be associated with a current time point in a videopresentation, according to an embodiment of the invention.

FIG. 6 is a simplified block diagram illustrating components of a systemenvironment that may be used in accordance with an embodiment of thepresent invention.

FIG. 7 is a simplified block diagram of a computer system that may beused in accordance with embodiments of the present invention.

DETAILED DESCRIPTION

Disclosed herein are systems and techniques for enabling a community ofon-line users to comment on and rate different aspects of a performancethat has been captured on video. Although the term “performance” is usedherein to refer generally to the content that such a video may contain,embodiments of the invention are not limited strictly to performances;various embodiments of the invention can be applied to video content ofany kind, including, for example, advertisements and other kinds ofpresentations. However, certain embodiments of the invention may beparticularly applicable to performance content. According to anembodiment, a user seeking a critique of his performance records adigital video of that performance and uploads it over the Internet to aserver, where it is stored in connection with that user's account. Theserver associates that video recording with a unique uniform resourcelocator (URL). Other users who are aware of the video recording'sassociated URL can enter that URL into the navigation bar of theirInternet browser applications in order to access, from the server, a webpage that includes a control for streaming the video recording over theInternet. In this manner, other users can view the video recording ofthe user who uploaded that video recording to the server.

The web page on which the video presentation control is contained alsocan include user interface elements through which the viewing users cansubmit, over the Internet, to the server, comments and ratingspertaining to the performance. The server, upon receiving these commentsand ratings, can tag or otherwise associate these submissions withtimestamps that indicate temporal positions at which the video recordingwas currently playing at the times that the submissions were received.For example, if the video presentation control was currently showing avideo frame corresponding to the 3:55.23 minute/second mark in the videorecording at the time that the server received a particular submission,then the server can associate that particular submission with atimestamp indicating 3:55.23. Thus, each submission can be associatedwith the temporal portion of the video recording to which thatsubmission pertains. The server can also tag or otherwise associatethese submissions with the identities of the users who submitted them.The server can store each received submission in association with therecorded video to which that submission pertains.

As the server receives and stores the submissions, the server canpresent these submissions to other users viewing the web page. The webpage can contain programmatic controls that allow the server to refresheach instance of the web page's content over the Internet, therebyallowing the server to “push” the submissions over the Internet to otherusers' computers in real-time, as the submissions are generated. Thus,as one user comments on the performance captured in the video recording,that user's comments can be made visible to other users who are alsocurrently viewing the same video recording. This real-time feature canenable users in the on-line community to conduct interactive discussionspertaining to the performance.

Furthermore, the server can store the various users' submissionspersistently in association with the web page, so that those submissionscan be recalled at even a much later time. When a user directs hisInternet browser application to the video recording's URL, the servercan generate the web page to include all (or at least some subset at atime) of the submissions that even have been associated with that videorecording. As a result, users who view the video performance are able tosee other user's submissions potentially long after those other userssubmitted them.

As is mentioned above, the server can store submissions in associationwith timestamps and user identities of the users who generated thosesubmissions. The server can generate or refresh the video recordingwebpage to include, along with each submission, an indication of thetimestamp that is associated with that submission, so that other usersviewing the web page are able to determine the temporal portions of thevideo presentation to which each submission pertains. Additionally, theserver can generate or refresh the video recording webpage to include,along with each submission, an indication of the identity of the userwho generated that submission. The identity can include, for example, auser name and a graphical avatar icon that are specific to the user whopossesses that identity. Submissions can be in the form of textualcomments. In one embodiment, submissions can be made in response toother submissions. The server can store data that indicates whichsubmissions are responsive to other submissions. The server can use thisdata to indent some comments beneath other comments or otherwisevisually format a comment section of the web page in order to signify toviewing users which comments were responsive to other comments.

Although submissions can be textual, some submissions can take otherforms. In one embodiment, the web page includes a set of graphicalbuttons proximate to the video presentation control through which thevideo is streamed. Each such graphical button can have a different labeland a different color. Each button can correspond to a different ratingor pre-specified comment. For example, if the video presentationpertains to a comedic performance, such as an on-stage comedy routine,then the buttons might have pre-specified labels such as “funny,”“boring,” “offensive,” “weird,” etc. Such labels can be pre-selected inorder to solicit specific responses from the video recording's viewersin the on-line community. For example, in one embodiment, the quantityof buttons and the labels on the buttons can be specified by the userwho originally uploads the video recording to the server. This user mayhave some idea of the kinds of critical submissions, ratings, or othertypes of feedback in which he is most interested. In this way, the videouploader can attempt to constrain at least some submissions intocategories of the video uploader's interest. Like other submissions, theserver can detect each user's activation of a graphical button, and canstore, in association with the button's identity, a timestamp indicativeof the temporal position at which the video recording was beingpresented at the time that the button was activated. In one embodimentof the invention, described in greater detail below, the server can usehistorical button label information gleaned from other users of thecommentary system in order to suggest button labels to a user based onthe user's stated goals.

In addition to the set of buttons described above, the web page can alsoinclude a bar graph or other visual indicator of the quantity of timesthat each button was selected by users from the on-line community atdifferent time intervals in the video presentation. The bar graph can bedivided into a set of sections, each section pertaining to a differentbutton in the set of buttons. For example, a first section might pertainto the “funny” button, while a second section might pertain to the“boring” button. In each section, a vertical axis of the graph canrepresent a quantity of activations of the button corresponding to thatsection during a particular time interval, and the horizontal axis ofthe graph can represent the time intervals. The length of each bar canindicate a quantity of activations. Each section's bars can be the samecolor as the button to which that section corresponds, so that viewerscan easily correlate the various buttons' labels with the correspondingsections of the bar graph.

For example, each time interval might correspond to a separate 5-secondspan of the video recording. A graphical bar for the first time intervalin the “funny” section might indicate that viewing users activated the“funny” button 10 times during the first time interval, while agraphical bar for the second time interval in the “funny” section mightindicate that viewing users activated the “funny” button only 2 timesduring the second time interval. Next to this section, a graphical barfor the (same) first time interval in the “boring” section mightindicate that viewing users activated the “boring” button only 1 timeduring the first time interval, while a graphical bar for the (same)second time interval in the “boring” section might indicate that viewingusers activated the “boring” button 17 times during the second timeinterval. Such viewer feedback can help the video uploader analyze andimprove his performance. In the foregoing example, the performer mightconsider retaining the portion of his performance corresponding to thefirst time interval, but might also consider modifying or eliminatingthe portion of his performance corresponding to the second timeinterval. Additionally, the performer might consult the textual commentshaving timestamps occurring within each section in order to attempt toobtain more specific feedback relating to each time interval. The bargraph can serve as a sort of index to focus the video uploader'sattention on specific sections of the textual comments. Although thetime intervals are of uniform length in one embodiment of the invention,in an alternative embodiment of the invention, the time intervals can beof variable lengths. For example, the video uploader could divide thevideo presentation into specified sections, each section having adifferent duration.

In one embodiment of the invention, the bar graph discussed above can berefreshed in real-time in a manner similar to that in which the textualcomments section of the web page can be refreshed. As buttons areactivated by users in the on-line community, the server can revise thebar graph and “push” the graph out to instances of the web pagecurrently being displayed on various users' Internet browserapplications. Although a bar graph can be presented in one embodiment ofthe invention, in alternative embodiments of the invention, differentkinds of graphs illustrating the same kind of information can bedisplayed in the user interface instead. Such other kinds of graphs caninclude, for example, line graphs, pie charts, circular clock-likecharts, etc.

Video Presentation Interface

FIG. 1 is a diagram illustrating an example of a video presentation userinterface that includes separate regions for timestamped comments and afeedback bar graph, according to an embodiment of the invention. In oneembodiment, the user interface is specified in a markup language such asExtensible Markup Language (XML). The user interface includes a videopresentation 102. As shown in this example, video presentation 102originates from a server separate from the server that has generated andpresented the user interface. In alternative embodiments of theinvention, video presentations can be uploaded to and stored on eitherthe same server or different servers from the servers that receive,store, and present user submissions relative to those videopresentations. In the present example, video presentation 102 is beingstreamed from popular video media site YouTube.

Video presentation 102 includes a play time indicator 104 that indicatesthe current temporal position within the video presentation as well asthe total duration of the video presentation. The current temporalposition indicates the duration of the time interval that spans from thebeginning of the video presentation to the video frame that is currentlybeing viewed. In this example, the current temporal position is 3:29 andthe total duration is 5:12. In an embodiment of the invention, usersubmissions received through the user interface are timestamped with thecurrent temporal positions that were effective at the moments of thosesubmissions. Thus, a submission entered by a user from the on-linecommunity through the user interface as shown would be timestamped asapproximately 3:29 (with potentially finer granularity). In the exampleshown, video presentation 102 is accompanied by video play controls thatpermit users to pause or continue playing video presentation 102 asdesired. The pause feature can aid users who want to interrupt theirviewing of video presentation 102 temporarily in order to enter asubmission through the user interface using techniques described withfurther detail below. In the example, shown, video presentation 102 isalso accompanied by a slider control that enables users to selectspecific time points at which to resume the playing of videopresentation 102. Although an embodiment is described above in which auser can manually pause video presentation 102, in one embodiment of theinvention, a server that is presenting the user interface additionallyor alternatively can automatically pause video presentation 102 inresponse to detecting that a viewer of video presentation 102 hasstarted to type or otherwise submit a comment (the process for which isdiscussed below) regarding a specific time point in video presentation102. Under such circumstances, the time point to which such a commentpertains can be the time point corresponding to the frame within videopresentation 102 that is being displayed when video presentation 102 ispaused.

Freeform Textual, Video, Audio, and Drawing Submissions

The example user interface shown also includes a freeform submissioncontrol 106. Freeform submission control 106 enables users from theon-line community to submit information, in the form of comments,pertaining to specific time points in video presentation 102. Freeformsubmission control 106 enables the submission of a variety of differenttypes of information. As shown, freeform submission control 106 includesseparate buttons for text comments, video comments, and audio comments.In an embodiment, an on-line commentator can activate any of thesebuttons to select the type of information that he wishes to submit inrelation to a specific time point in video presentation 102. If theon-line commentator has selected the text comment button, freeformsubmission control 106 presents a text entry field into which thecommentator can type a textual comment. In one embodiment, in responseto the text entry field gaining focus and/or in response to a user'sselection of any of the comment buttons in control 106, the serverautomatically pauses video presentation 102.

After the commentator has finished typing his textual comment into thefield, the commentator can press “enter” in order to cause his textualcomment to be transmitted from his Internet browser application, overthe Internet, to the server that receives and stores user submissions.The commentator's browser application can determine and send thetimestamp along with the textual comment, or the receiving server candetermine the timestamp after receiving the textual comment. In eithercase, the server stores the textual comment in association with thetimestamp. The server also stores an identity of the commentator, if thecommentator's identity is known (e.g., through a log-in mechanism), inassociation with the textual comment. As will be discussed furtherbelow, the server can generate new versions of the user interface,and/or refresh user interfaces currently being presented, to includerecently submitted textual comments along with their associatedtimestamps and user identities.

In an embodiment, an on-line commentator also can alternatively selectthe audio comment or video comment buttons in order to cause the userinterface to adapt freeform submission control 106 to receivesubmissions of the indicated types. For example, in response to acommentator's submission of the video comment button, freeformsubmission control 106 can present menus (potentially invoking methodsof the commentator's operating system) through which the commentator canspecify a video file to be uploaded to the server from the commentator'sown computer. For another example, in response to a commentator'ssubmission of the audio comment button, freeform submission control 106can present menus (again, potentially invoking methods of thecommentator's operating system) through which the commentator canspecify an audio file to be uploaded to the server from thecommentator's own computer. The server can receive such files over theInternet and can store such files as user submissions in associationwith timestamps and commentator identities, similar to the manner inwhich the server does so relative to textual comments as discussedabove. In alternative embodiments, freeform submission control 106 canpresent a field through which a commentator can type a URL thatindicates a server and directory path at which the video or audio fileto be submitted as a comment can be found. Under such circumstances, thesubmission might not be uploaded to the server at all. Instead, in sucha scenario, the server can store an association between the URL, thetimestamp, and the commentator's identity. The content of the linked-tofile can be obtained over the Internet from the URL-indicated locationat such a time that the content is going to be presented through theuser interface.

Although one embodiment of the invention provides mechanisms wherebyusers from the on-line community can upload previously recorded video oraudio files as submissions pertaining to time points within videopresentation 102, in an alternative embodiment of the invention, suchvideo or audio submissions can be generated and stored “on the fly.” Forexample, in one embodiment, in response to a user's selection of thevideo comment button, code embedded within the user interface can causethe user's computing device's camera to begin recording motion video(potentially with audio). The user interface can display a pop-up windowthat shows the user the content that the camera is recording. When theuser is finished recording, the user can select an element within theuser interface (e.g., a “stop” button), and the server can responsivelystore the video recording as a video comment. Similarly, in oneembodiment, in response to a user's selection of the audio commentbutton, code embedded within the user interface can cause the user'scomputing device's microphone to begin recording sound. The userinterface can display a pop-up window that shows the user an audioequalizer graphic indicative of the sound that the microphone isrecording. When the user is finished recording, the user can select anelement within the user interface (e.g., a “stop” button), and theserver can responsively store the sound recording as an audio comment.Although freeform submission control 106 contains buttons for textual,audio, and video comments, in one embodiment of the invention, a similarfreeform submission control can contain buttons for other kinds ofsubmissions. For example, in one embodiment of the invention, a similarfreeform control can contain a button for submitting a drawing comment.In response to a user's activation of a drawing comment button, the userinterface can receive touch gestures or mouse movements that representdrawing strokes made over some designated region of the user interface.Such strokes can be displayed as drawn lines within a currentlypresented frame of video presentation 102, for example. The user canindicate via activation of another control that the drawing comment iscomplete. Thereafter, the drawing comment, including all of the drawingstrokes, can be stored in association with a time point and displayed ina manner similar to that in which video comments can be displayed, as isdiscussed in greater detail below.

Thus, comments submitted by various users in the on-line community, fromseparate computing devices, can be in the form of text comments, audiocomments, and/or video comments (which also can contain accompanyingaudio). Each comment, or a reference to that comment, can be stored atthe server in association with that comment's timestamp and useridentity. In one embodiment, the server can store or refer to multipledifferent video presentations, and each such video presentation can beassociated with a separate set of submissions. In such an embodiment, inaddition to storing a timestamp and commentator identity in associationwith a submission, the server can also store an identity of the specificvideo presentation to which the submission pertains. In the exampleshown in FIG. 1, the user interface additionally presents a button 138that a viewer of the user interface can activate in order to invoke amechanism that enables the submission of a new video presentation to theserver. In this example, button 138 is displayed next to a uniqueidentifier for the user who is currently logged into the system thatprovides the user interface.

Real-Time Communal Timestamped Multimedia Comment Log

In an embodiment, the submission of a comment through freeformsubmission control 106 causes the server to update the user interface inreal-time. The updated user interface can be transmitted over theInternet to the browser applications of computing devices that arerequesting the user interface for the first time. Additionally, in oneembodiment, the server can push updates to the user interface (e.g.,using asynchronous JavaScript and XML (AJAX) or other technology) overthe Internet to browser applications that are currently displayed theuser interface. In such an embodiment, the browser applications candynamically refresh the user interface, or updated portions thereof,based on the data that the server has pushed. Regardless of the specifictechnique used, the server can cause the user interface to include atleast a subset of the textual, audio, and/or video comments that usersfrom the on-line community have submitted relative to video presentation102. An example of the manner in which these comments can be presentedwith the user interface is discussed below.

As shown in the example of FIG. 1, beneath freeform submission control106, the user interface presents multiple comments pertaining tospecific time points within video presentation 102. The server receivedthese comments over the Internet from various separate computing devicesoperated by various different users at various different times. Thesecomments were made using instances of freeform submission control 106within instances of the user interface presented by the separatecomputing devices' Internet browser applications. Included within thesecomments are a textual comment 110 and a video comment 116.

Textual comment 110 was submitted by a user 108 having the uniqueidentity “reinhold” and name “Reinhold Gliere.” The identity andgraphical avatar of user 108 are presented immediately above textualcomment 110. Immediately below textual comment 110, the user interfacedisplays timestamp 112. Timestamp 112 indicates that textual comment 110pertains to the 3:30 (3 minutes and 30 seconds) time point within videopresentation 102. Timestamp 112 thus indicates that user 108 was viewingthe frame at the 3:30 time point within video presentation 102 at thetime that user 108 submitted textual comment 110 using an instance offreeform submission control 106.

Video comment 116 was submitted by a user 114 having the unique identity“klaus” and name “Klaus Tennstedt.” The identity and graphical avatar ofuser 114 are presented immediately above video comment 116. Immediatelybelow video comment 116, the user interface displays timestamp 118.Timestamp 118 similarly indicates that video comment 116 pertains to the3:30 (3 minutes and 30 seconds) time point within video presentation102. This is to be expected in this particular case, because videocomment 116 was submitted as a reply to textual comment 110. Indentationof video comment 116 below textual comment 110 signifies the responsivenature of the former comment to the latter comment. In an embodiment,the user interface provides a mechanism through which an on-linecommentator can specify to which of several displayed submissions hisown submission is meant to be a reply. For example, the user interfacecan provide a mechanism through which a user can click on or touch aparticular submission in order to select that particular submission. Theuser interface can highlight such a user-selected submission to visiblydistinguish it from other non-selected submissions. In an embodiment,the server determines that a submission received through freeformsubmissions control 106 while another particular submission washighlighted is meant to be a response to that particular submission. Insuch an embodiment, the server stores the newly received submission inassociation with the particular submission as a reply to that particularsubmission. The indentation of some responsive comments below othercomments therefore forms a kind of comment hierarchy, in which theresponsive comments are at a lower level of the hierarchy than thecomments to which they are responsive. In one embodiment of theinvention, the user interface includes one or more controls that a usercan activate in order to expand or collapse comments that are withinvarious levels of the comment hierarchy, thereby causing those commentsto become revealed or obscured in the real-time comment log as seen bythat particular user.

In an embodiment, video comment 116 initially is presented as athumbnail image. The thumbnail image can be a (potentiallyautomatically) selected frame from the video content that user 114provided as a submission. In such an embodiment, in response to theviewer of the user interface clicking on or otherwise selecting thethumbnail image, the user interface begins to present video comment 116within the boundaries that the thumbnail occupied. Thus, the viewer canwatch a motion video (potentially with accompanying audio) comment thatanother user from the on-line community submitted in response to videopresentation 102. By consulting timestamp 118, the viewer can determinethe precise temporal location within video presentation 102 to whichvideo comment 116 pertains.

Different on-line commentator submissions can pertain to different timepoints within video presentation 102. Although comments 110 and 116 bothpertain to the 3:30 time point, another textual comment 120 from yetanother user pertains to a different time point. As shown, textualcomment 120 is associated with timestamp 122, which indicates thattextual comment 120 pertains to the 3:32 time point within videopresentation 102. Yet another video comment has been submitted as areply to textual comment 102.

In one embodiment of the invention, the user interface includes controlsthat a viewer can activate in order to filter the comments or othersubmissions. For example, the user interface can include a control thatcan be used to specify that comments from a particular submitter shouldbe omitted from the real-time comment log.

In one embodiment of the invention, each comment in the real-timecomment log includes, proximate to it, controls that other users in theon-line community can activate in order to register positive or negativevotes for that comment. In one embodiment, a user who receives asufficiently high quantity of positive votes (in the aggregate, withnegative votes offsetting the positive ones) relative to his commentscan be automatically designated an “expert.” Such a designation isdiscussed in another section below pertaining to an audiencemarketplace.

Categorized Quick Submissions and Bar Graph

Although some submissions from users in the on-line community can bereceived through freeform submission control 106 in the user interface,embodiments of the invention additionally can include other mechanisms,also with the user interface, through which such users can selectpre-specified (prior to the generation of the user interface)categorized submissions that pertain to video presentation 102. In theexample shown in FIG. 1, the user interface includes graphical interfaceelements such as buttons 124, 126, and 128. In one embodiment, such asin the example illustrated in FIG. 1, buttons 124, 126, and 128 have theappearance of “comment bubbles” of the variety that one might see in acomic strip as an indication that something audible is being said. Eachbutton has a different label, and each button has a different color.Button 124 is blue and has the label “Funny.” Button 126 is orange andhas the label “Thumbs Up!” Button 128 is green and has the label “Meh .. . ” Thus, buttons 124, 126, and 128 correspond to differentpre-specified submission categories. A viewer of the user interface caninput a submission by activating any of buttons 124, 126, or 128.Although a particular set of buttons is shown, alternative embodimentsof the invention can include different quantities of buttons withdifferent colors and/or labels. In one embodiment, a user who originallyuploaded or referred to video presentation 102 can specify the quantity,colors, and labels of the buttons. In this manner, such a user cansolicit, from the on-line user community, specific categorized comments,critiques, or other feedback in which that user is most interested.Although in one embodiment only the uploader of video presentation 102can specify the attributes of the buttons, in an alternative embodimentof the invention, other users from the on-line community viewing videopresentation 102 can use controls in the user interface to add newbuttons, having attributes of those users' designation, to the set ofbuttons displayed. In one embodiment, the uploader of video presentation102 can control whether or not other users in the on-line community aregranted this button-adding ability relative to video presentation 102.

As with freeform submissions entered using freeform submission control106, categorized submissions made through the activations of buttons124, 126, and 128 also can be associated with timestamps and useridentities. For example, in response to a user selecting button 124while video presentation 102 is temporally positioned at the 3:29 timepoint, the server can store a submission that maps that user's identityto a “Funny” categorized submission (corresponding to the label onbutton 124) and the 3:29 time point. The server can generate and/orupdate, in real-time, a bar graph 130 that indicates, for various timeintervals, and for various submission categories, the quantities ofsubmissions that have been received from users in the on-line communityfor each such category in each such time interval. Similar to the mannerin which the server can push updated textual, video, and audio commentsto Internet browsers that are currently displaying the user interface,the server in one embodiment also can push the real-time updated bargraph 130 to those browsers in order to refresh the user interface onvarious separate computing devices as the server receives categorizedsubmissions.

Bar graph 130 is a two-dimensional bar graph in which the vertical axisrepresents a quantity of submissions and in which the horizontal axisrepresents time. Different time intervals are therefore representedalong the length of bar graph 130. Numeric indicators of selected timepoints are indicated beneath the horizontal axis at periodic intervals.In one embodiment, each time that the server receives a categorizedsubmission due to the activation of one of buttons 124, 126, or 128, theserver increments a time-interval specific count for the particularsubmission category to which the activated button corresponds. Fromamong several separate time-interval specific counts that are associatedwith the particular submission category, the server updates the countthat corresponds to the time interval that contains the time point towhich the categorized submission is mapped. In other words, based on theparticular time point that corresponds to the video frame that iscurrently being shown in video presentation 102 at the moment that thebutton is activated, the server can determine into which of several timeintervals that particular time point falls, and can increment the countfor that time interval and category combination (e.g., a count for the3:25-3:30 interval in the “Funny” category).

For each time interval, bar graph 130 contains one or more verticalcolored bars (potentially stacked one on top of the other within aparticular time interval), each having a height or size that isindicative of the quantity of submissions received in a particularcategory for that time interval. For each category corresponding to oneof buttons 124, 126, or 128, a particular time interval in bar graph 130can contain a vertical colored bar having the same color as the buttonto which it corresponds. For example, at time interval 132, threedifferently colored (blue, orange, and green) vertical bars are stackedon top of each other, each corresponding to a different submissioncategory, and each having a height that is proportionate to the quantityof submissions that were received for that submission category and thatpertain to time points within time interval 132. For another example, attime interval 134, three differently colored (blue, orange, and green)vertical bars are also stacked on top of each other, each correspondingto a different submission category, and each again having a height thatis proportionate to the quantity of submissions that were received forthat submission category and that pertain to time points within timeinterval 134. The heights of the bars in time interval 132 are differentfrom the heights of the bars in time interval 134 because the quantitiesof submissions for each submission category differ between those timeintervals. In some time intervals represented along bar graph 130, somesubmission categories might not be represented by correspondinglycolored bars in those intervals, because no submissions for thosecategories were received in relation to any time points occurring withinthose time intervals.

Thus, by consulting bar graph 130, a viewer (including the originaluploader of video presentation 102) can determine, for each timeinterval in a set of time intervals spanning the duration of videopresentation 102, how many submissions for each specified category werereceived from users in the on-line community relating to time points inthat time interval. The viewer can therefore ascertain which parts of aperformance captured within video presentation 102 are the most funny,the most appreciated, the most uninspiring, or the most superlative inother pre-specified categories.

In one embodiment, bar graph 130 also contains a moving temporalposition indicator 136. Temporal position indicator 136 can berepresented as a thin vertical red line that moves from left to rightalong the length of bar graph 130 as video presentation 102 plays. Atevery moment in time, the location of temporal position indicator 136corresponds to the current temporal position shown in play timeindicator 104. Thus, at any particular time point at which videopresentation 102 is currently being presented (potentially paused),temporal position indicator 136 will be located within a time intervalin bar graph 130 that contains that time point. This enables a viewer todetermine more easily the part of bar graph 130 that corresponds to thepart of video presentation 102 that is currently being displayed. In oneembodiment, a user's movement of the slider control to select a new timepoint in video presentation 102 also causes the temporal positionindicator 136 to be repositioned along bar graph 130 at a locationcorresponding to the newly selected time point. Conversely, in oneembodiment, in response to a user selecting a particular time pointwithin bar graph 130, code within the user interface moves the temporalposition indicator 136 to that selected time point and also skips thecurrent temporal position within video presentation 102 to theequivalent time point, so that video presentation 102 resumes play fromthat time point.

As is discussed above, in one embodiment of the invention, a user canuse his Internet browser application to upload a video file to a serverthat stores such video files and generates the user interface shown inFIG. 1. Such video files can contain the content that such a userinterface can present as video presentation 102 and other videopresentations. In alternative embodiments, a user can use his Internetbrowser application to specify the URL or other identifier for videocontent that is already stored at some Internet-accessible location.Under such circumstances, the server that generates the user interfaceshown in FIG. 1 might not actually store a copy of the file representingthe video content, but instead may store a link or reference to thelocation at which that file can be found. The server may cause thecontent of such an externally located video file to be streamed over theInternet to various users' computing devices from the location at whichthat video file is located rather than from the server's own storagedevices.

In one embodiment of the invention, the user interface provides acontrol that a user can activate in order to cause any portion of anybar graph to appear more prominently, thereby “zooming in” on thatportion. For example, using such a control, a user may specify that aparticular selected time interval in the bar graph should be zoomed inon. When zooming in on the selected portion, the server can re-renderthe bar graph region to include only the user-selected portion of thegraph, excluding portions of the graph that the user did not select. Theuser interface control also may provide a control that the user canactivate to zoom back out to the full view of the complete bar graph.

In one embodiment of the invention, the web page encoding the userinterface further includes code that a browser interprets to causecertain operations to occur in response to the user moving a mousepointer over certain elements of the bar graph (or other portions of theuser interface). For example, in one embodiment of the invention, inresponse to detecting that the user has moved the mouse pointer over aspecific bar in the bar graph, thereby “hovering” over that bar, one ormore avatar images of the users who posted the categorized submissionsinvolved in the composition of that bar can be displayed overlaid on thebar graph for as long as the mouse pointer remains stationary.

In one embodiment of the invention, the user interface includes acontrol that a user can select in order to cause his categorizedsubmission, made through the activations of the buttons, private. Insuch an embodiment, if the user's submissions have been made private,then users other than the submitter and the video presentation providercannot see those submissions, and those submissions do not influence theinformation represented in the bar graph as seen by such other users.

Multi-Source Video Registration Interface

FIG. 2 is a diagram illustrating an example of a video content selectionuser interface that includes options for indicating a source from whicha video presentation is to be obtained, according to an embodiment ofthe invention. In one embodiment, in response to a user's activation ofbutton 138 shown in FIG. 1, the server sends, to the user's Internetbrowser, another user interface similar to the one shown in FIG. 2. Thissubsequent user interface assists the user in informing the server whereto find video content that is to serve as the basis for a new videopresentation that the user would like to share with the on-linecommunity of users—potentially so that those users in the on-linecommunity can submit comments pertaining to specific time points withinthat video presentation. The user interface shown in FIG. 2 includes anoverlaid window that instructs the user to choose a video format that isthe most convenient for the user. The window includes at least twooptions, each with an associated radio button that the user can selectin favor of the other. In the example shown, the first option indicatesthat the video content will be designated through a user-specified URLor YouTube (or other on-line video presentation site) identifier. Thesecond option indicates that the video content will be designated by adirectory path and filename of a file that is stored locally on theuser's own computing device.

After selecting one of the two options by clicking on its associatedradio button, the user can type, into a field that is displayed in thewindow beneath the options, information that identifies the locationfrom which the video content is to be obtained. If the first option wasselected, then the field can receive a user-specified URL or YouTube (orother on-line video presentation site) identifier that indicates anInternet-accessible location at which a desired video file is stored. Ifthe second option was selected, then the field can receive auser-specified directory path and filename for a video file that islocally stored on the user's own computing device. In the latter case,the user interface may invoke methods of the computing device'soperating system in order to cause the display of menus that can assistthe user in specifying the directory path and filename. In either case,after the location of the video content has been specified, the servercan either store a reference to the video content's location (in thecase of the first option) or receive the video content itself over theInternet (e.g., using the File Transfer Protocol (FTP)) from the user'sown computing device. If the server receives the video content from theuser's own computing device, then the server can store that videocontent on the server's computing device for later presentation througha user interface of the kind shown by way of example in FIG. 1. Eachsubmitted video content item can be associated on the server with aunique video content identifier that distinguishes that video contentitem from all others. As is discussed above, in one embodiment, usersubmissions made in reference to a video presentation are stored on theserver in association with that video presentation's unique identifier.Additionally, each submitted video content item can be associated on theserver with a unique video content URL. In one embodiment, this videocontent URL is the URL of the web page that specifies the markuplanguage code for the user interface in which the video content item isto be presented—which may differ from a URL at which the video contentitem itself is located (potentially externally to the server).

In one embodiment of the invention, the user interface includes acontrol through which the user can indicate that the video content is tobe part of a private collection not co-mingled with the general videocontent population. In one embodiment of the invention, such a privatecollection is generated in the system in exchange for pecuniarycompensation paid to the operator of the commentary system. The privatecollection can be restricted to users who are members of a specifiedgroup, such as a school or other “walled” community. In one embodiment,only members of such a group can view video presentations that are inthe group's private collection, and only members of such a group canupload new video content to that private collection. In one embodimentof the invention, users are admitted to such private groups byauthenticating with the commentary system using e-mail addresses thathave domains that are associated with those private groups.

Hypothetically, video content that is present on an on-line videosharing web site, such as YouTube, might already have a correspondingweb page within the commentary system. For example, a user might haveuploaded that video content to the commentary system without being awareof the same video content being present on the other video sharing website. Alternatively, the user introducing the video content to thecommentary system might be aware of that content's presence on YouTubebecause that user might be introducing that content directly fromYouTube using the interface described above in connection with FIG. 2.In either case, in one embodiment of the invention, the user interfaceincludes a control through which the user introducing the video contentcan specify that user comments posted to the corresponding video contentweb page on the other video sharing web site are to be importedautomatically into the submissions pertaining to the video presentationon the commentary system. In such an embodiment, the server of thecommentary system can periodically check the corresponding video webpage on the other video sharing web site and can automatically import,into the commentary system, any user comments that have been made onthat other web site since the last time that such comments wereimported. Such comments can be displayed in the real-time comment logsection of the user interface discussed above in connection with FIG. 1.

Video Attribute Specification Interface

FIG. 3 is a diagram illustrating an example of a video attributespecification user interface that includes controls for specifyingvarious attributes of video content that has been introduced into thetimestamped commentary system, according to an embodiment of theinvention. In one embodiment, the server sends the user interface shownin FIG. 3 over the Internet to a user's browser application after theserver receives video content or a reference to that video content viathe user interface described above in connection with FIG. 2. The userinterface shown in FIG. 3 enables the user to specify various attributesto describe and control the presentation of the video content to otherusers in the on-line community.

A video title control 302 enables a user to enter a relatively brieftextual label that is to be presented immediately above the videopresentation in a user interface similar to that shown in FIG. 1. In thepresent example, the user has entered the title “Clap It Up (Step UpParody)” using control 302.

A video description title control 304 enables a user to enter alengthier textual description that is to be presented immediately belowthe video presentation in a user interface similar to that shown inFIG. 1. In the present example, the user has entered, using control 304,a description that reads, in part: “SUBSCRIBE to Above Average Network://bit.ly/LIHUTM . . . ”

A visibility control 306 enables a user to indicate whether the videopresentation can be accessed only by those who know the videopresentation web page's URL or whether the video presentation can beaccessed by other means (e.g., through results found by a web-crawlingsearch engine). User-selectable radio buttons are presented invisibility control 306 in association with a first option that indicates“private (anyone with link)” and a second option that indicates “public(searchable by anyone).” In one embodiment, selection of the first(private) option causes the server to prevent automated web-crawlingmechanisms of Internet search engines from discovering and indexing theweb page that will contain the on-line submission interface for thevideo presentation. For example, this prevention can be achieved throughthe specification of a password that will be required of those seekingto view that web page. In one embodiment, the selection of the second(public) option causes the server, alternatively, to allow suchautomated web-crawling mechanisms of Internet search engines to discoverand index the web page that will contain the on-line submissioninterface for the video presentation. Consequently, references to thatweb page may be included in the search results that such Internet searchengines return to users who submit searches for keywords that arecontained in that web page.

Furthermore, in one embodiment, the server on which the web page isstored may provide its own facility for searching video content itemsstored on that server. For example, such a server-provided searchfacility may enable a user to search for video content items that areassociated with specified keywords. In one embodiment, the selection ofthe first (private) option causes the related video presentation to beexcluded from the results returned by such a server-provided searchfacility, while the selection of the second (public) option causes therelated video presentation to be included within the results returned bysuch a server-provided search facility. In either case, regardless ofthe selection, in one embodiment, the web page that will be constructedto contain the video presentation is always accessible through the entryof that web page's URL in the navigation field of a user's Internetbrowser application.

An allowed comment types control 308 enables a user to indicate whichtypes of submissions from other users in the on-line community arepermitted through the user interface through which the videopresentation will be presented. In one embodiment, the possiblesubmission types include “textual,” “quick,” and “A/V” (or audio/video).In the example shown in FIG. 3, each submission type in control 308 isassociated with a corresponding checkbox control that the user canselect or unselect in order to designate whether submissions of thattype are permitted. Selection of the “textual” submission type causesthe server to present subsequently, in the web page for the videopresentation, within a control similar to freeform submission control106, a “textual comment” button that users in the on-line community canactivate in order to submit textual comments similar to those describedabove in connection with FIG. 1 (e.g., textual comments 110 and 120).Selection of the “A/V” submission type causes the server to presentsubsequently, in the web page for the video presentation, within acontrol similar to freeform submission control 106, both “audio comment”and “video comment” buttons that users in the on-line community canactivate in order to submit audio and/or video comments similar to thosedescribed above in connection with FIG. 1 (e.g., video comment 116).Selection of the “quick” submission type causes the server to presentsubsequently, in the web page for the video presentation, categorizedsubmission buttons similar to buttons 124, 126, and 128, which users inthe on-line community can activate in order to submit, quickly,categorized pre-specified comments corresponding to the presentedbuttons. In one embodiment of the invention, the lack of selection ofany of these submission types through control 308 subsequently causesthe server to omit or to “gray out,” in the user interface shown in FIG.1, the corresponding controls through which submissions of those typeswould be submitted, thereby preventing the server's receipt ofsubmissions of those types in association with that particular videopresentation. Although not shown in FIG. 3, in one embodiment of theinvention, a similar allowed comments type control can includeadditional or different submission types. For example, in one embodimentof the invention, a similar allowed comments type control can include a“drawing” submission type whose selection causes the presentation of a“drawing comment” button within a user interface similar to thatdescribed with reference to FIG. 1.

As is discussed above in connection with visibility control 306, in oneembodiment, the server provides a search facility through which users inthe on-line community can search for video presentations that areassociated with specified keywords. In order to facilitate such sitesearching, the user interface shown in FIG. 3 can include a video tagcontrol 310 through which a user can specify tags or other keywords thatthe server is to store in association with that user's videopresentation. The tags can be typed into a field of video tag control310 and delimited by commas. In one embodiment, after the server hasstored the typed tags in association with the user's video presentation,the server can include a reference to that video presentation withinresults of a search that other users from the on-line communityrequested for video presentations matching any of those tags. Forexample, if the video-providing user indicates that his videopresentation is to be associated with the tags “dog,” “jump,” and“circus,” then another user's subsequent search for video presentationsassociated with any of those tags can, in one embodiment, cause areference to the video-providing user's video presentation to appearwithin the results of that search.

A quick comments control 312 enables a user to define the categories—orlabels—for the categorized submission buttons that are to be displayedbelow his video presentation on a user interface of the kind shown byway of example in FIG. 1. The quick comments control 312 includes a textfield into which the user can enter textual labels for the categories,delimited by semicolons. After the server has stored the definitions forthe categorized submission buttons in associated with the videopresentation, the server can cause a separate button to be placed on theuser interface for that video presentation. Each categorized submissionbutton contains a separate one of the labels from the delimited labellist entered through control 312. Examples of such buttons includebuttons 124, 126, and 128 of FIG. 1. Thus, through quick commentscontrol 312, the uploader of the video presentation can specify thequantity of and labels for each of the categorized submission buttonsthat will be displayed in connection with his video presentation. Inthis manner, the uploader of the video presentation is better enabled tosolicit, from other users in the on-line community, the specific kindsof critique or feedback in which the uploader is most interested.Additionally, in one embodiment of the invention, control 312 or someother control can include a mechanism through which the uploader candesignate, for each categorized submission button that will be presentedalong with his video presentation in the user interface, apositive-to-negative weight that is associated with that button. Forexample, the weight can be a positive or negative number. In oneembodiment of the invention, each submission corresponding to acategorized submission button influences a total score that isassociated with the video presentation. This score may be displayed inconnection with the video presentation, for example, or presented onreports that include information about the video presentation.

In one embodiment of the invention, the video attribute specificationuser interface of FIG. 3 additionally includes a save button control 314that a user can activate in order to cause the server to store, inassociation with the newly submitted video content item, all of thevideo attributes that the user has specified via controls 302-312. Savebutton control 314 can be accompanied by a cancel button control whoseactivation will cause the video attribute specification user interfaceof FIG. 3 to be exited without associating any of the specified videoattributes with the video content item.

Video Collection Interface

FIG. 4 is a diagram illustrating an example of a video collection userinterface that lists video presentations that a particular user hasintroduced into the timestamped commentary system, according to anembodiment of the invention. The user interface shown in FIG. 4 includesa description of a video presentation that the user had alreadyintroduced into the system: video presentation description 402. The userinterface additionally includes a description of a new videopresentation that the user has just recently introduced into the systemusing the user interfaces of FIGS. 2 and 3: video presentationdescription 404. Each of video presentation descriptions 402 and 404indicates certain of that video presentation description's attributes,including a video title, video description, and a thumbnail image fromthe video content item itself. In one embodiment, the user interfaceshown in FIG. 4 includes controls for permitting the owning user (i.e.,the user that introduced the video presentations into the commentarysystem) to edit the attributes that are associated with a selected videopresentation description. In one embodiment, the user's selection of athumbnail image associated with a particular video presentationdescription in this user interface causes the server to present, to theuser, a video presentation commentary user interface of the kind shownin FIG. 1, pertaining to the video presentation referenced by theparticular video presentation description. In one embodiment, the userinterface shown in FIG. 4 includes controls for permitting the owninguser (i.e., the user that introduced the video presentations into thecommentary system) to remove selected video presentations from theon-line commentary system.

Collaborative Timestamped Video Commentary

Significantly, embodiments of the invention enable users other than theprovider of the video presentation himself to associate submissions,such as textual and other types of comments, with specified time pointswithin that video presentation. This beneficially assists the videopresentation provider to discover what other users think about thepresentation's content more finely, at specific time points, rather thanmore coarsely to the presentation as a whole. Potential approaches thatwould allow other users to submit comments pertaining to a videopresentation as a whole, but not pertaining to specific time pointswithin that presentation, therefore may fail to provide the benefitsthat can be achieved through the systems and techniques describedherein. Additionally, potential approaches that would allow the videopresentation provider himself to associate specified comments withspecific time points within the video presentation would not necessarilyallow users other than the provider himself to make such timepoint-specific comments relative to the presentation. Thus, even thoughsuch potential approaches might allow the video presentation provider toshow textual commentary to other users at time points of the provider'sown selection, such potential approaches would fail to provide thebenefit of allowing time-specific commentary in the other direction:from the on-line community of users to the video presentation provider.Potential approaches such as those contemplated above would not achievethe goal of allowing the video presentation provider to obtain critiquesof the content of his video presentation from other users in the on-linecommunity in a time point-specific manner. In contrast, the systems andtechniques disclosed herein can help a person, such as a comedian, forexample, to ascertain from others which parts of his video-recordedperformance are most humorous and which parts of that performance mightneed more work. Other performers who might find the systems andtechniques disclosed herein to be useful may include, for example,teachers, actors, marketers, etc.

Demographical Segmentation

In one embodiment of the invention, the users in the on-line communitycan register accounts with the server that provides the videopresentation commentary system discussed above. The users can access thesystem by logging into these registered accounts. In one embodiment, asa part of the account registration process, each user in the on-linecommunity can be asked to provide demographic information about himself,such as, for example, his age, his gender, his race and/or ethnicity,his income level, his education level, his geographical location, etc.The server can store these demographic traits in association with theuser's account at registration time.

In an embodiment, the server can use the stored useridentity-to-submission associations in order to segment a particularvideo presentation's submissions into various demographic categories.For example, the server can provide a user interface through which thevideo presentation provider can indicate the demographic categories inwhich he is interested (e.g., Caucasian females aged 18-25). The servercan receive the provider's desired demographic categories and cangenerate a submission report that indicates, for each of the textual,audio, and video submissions received in relation to the videopresentation, which of the demographic categories the submitter of thatsubmission falls into. The report can indicate a total quantity ofsubmissions made by users in each demographic category. Within eachcategory, the submissions can be further segmented into time intervals,as discussed above.

Additionally, in one embodiment, the server can generate a report havingan appearance similar to bar graph 130 of FIG. 1, except that theinformation within that bar graph can be further segmented into thespecified demographic categories. Thus, for example, each time intervalcan indicate, for each specified demographic category, the number oftimes that users within that demographic category selected eachcategorized submission button in connection with a time point fallinginto that time interval. Additionally or alternatively, the server cangenerate a report containing multiple separate instances of bar graph130, with each instance containing data only for a different specifieddemographic category. Thus, a first bar graph can indicate time-specificbutton selections received from users in a first demographic category,while a second bar graph can indicate time-specific button selectionsreceived form users in a second demographic category, etc.

Beneficially, demographic-specific feedback of the kind discussed abovecan help the video presentation provider to determine, for differentaudiences, how those audiences tend to react to different parts of hispresentation. Demographic-specific feedback of the kind discussed abovecan help the video presentation provider to determine, for differentaudiences, which parts ought to be specifically tailored for thoseaudiences. Those parts might very well differ for different demographicsegments.

In one embodiment of the invention, the server provides a mechanismwhereby a user can instruct the server to generate custom reportspertaining to the submissions. The server can receive user-specifiedcriteria and generate reports based on those criteria. For example, thecriteria can indicate that the report should include only informationbased on submissions that satisfy the criteria (e.g., time-based,demographic-based, submission category-based, etc.). The reports can begenerated as web pages, and can be printed to paper. The reports caninclude screen shots from any of the user interfaces. The reports caninclude tables that indicate instances of various comments.

According to one embodiment, the server provides a mechanism wherebyanalytical reports pertaining to the total collection of videopresentations and/or analytical reports pertaining to the completeon-line community of users can be generated. For example, in oneembodiment, such analytical information include in such reports caninclude identifications of a most popular video presentation (e.g.,based on quantity of views), a worst video presentation (e.g., based ona quantity of negative categorized submissions associated therewith), auser involved in the most conversations, a user having the mostcomments, a user having the most video presentations in his collection,etc.

In one embodiment, results of various views of the same videopresentation can be combined.

Targeted Video Distribution

As is discussed above, in one embodiment of the invention, the videopresentation provider can specify whether his presentation is to bepublic—accessible to any user of the commentary system—orprivate—accessible only to those who possess the video presentation'sunique URL. In one embodiment, the system provides a mechanism by whichthe video presentation provider can target the distribution of his videopresentation to specific users, and/or to non-specific users havingspecific attributes.

In one embodiment of the invention, the system provides a user interfacethrough which the video provider can specify, to the server, a list ofother users of the commentary system that the video provider wants toaccess and comment on the presentation. In one embodiment, the systempresents a potentially searchable list of the system's users from whichthe video presentation provider can select specific users from whomcomments on the presentation are to be solicited. In response toreceiving such a list of the system's users, the server can sendnotifications to each of the users. The notifications can be in the formof e-mail messages addressed to the e-mail addressed indicated in thedesignated users' account information, for example. Each such e-mailmessage can specify the URL of the video presentation or can contain aselectable hyperlink that will cause the activator's Internet browserapplication to load the web page containing the comment submission userinterface for the video presentation. Additionally or alternatively, thenotifications can be in other forms, such as Short Message Service (SMS)text messages sent to the designated users' mobile devices such as smartphones, messages or comments posted to the designated users' Facebookaccounts, “tweets” sent to the designated users' Twitter accounts, etc.Furthermore, a viewer who is interested in a particular videopresentation provider's video presentation can optionally invoke amechanism of the system that causes the viewer's account to becomesubscribed to that particular video presentation provider's videocollection. Thereafter, the server can automatically send, to thesubscribing viewer, a notification (in any of the forms discussed above)informing the subscribed viewer that the particular video presentationprovider has added a new video to that video collection whenever theparticular video presentation provider does so.

In an alternative embodiment of the invention, instead of or in additionto providing the user-specific specification distribution mechanismdescribed above, the system provides a mechanism through which the videopresentation provider can specify various attributes that the providerdesires potential commenters on his presentation to have. For example,the provider might indicate, through a user interface displayed by theserver, that the provider is interested in receiving submissions on hispresentation from divorced female users who are aged 35-45 and earn over$250,000 per year. In response to receiving such criteria from theprovider, in one embodiment, the system determines a set of the system'sregistered users who possess the desired attributes. The system candetermine this set using the attribute information that the usersthemselves provided at the time of account registration with thecommentary system. After determining the set of eligible users, thesystem can send notifications to those non-specific criteria-satisfyingusers in a manner similar to which the system sends notifications tospecific users selected by the provider, as described above.

As a result of the foregoing targeted distribution techniques, the videopresentation provider can obtain feedback, critiques, or othercommentary from the kind of people in whose opinions he is mostinterested. This makes the information obtained through the submissionseven more valuable to the video presentation provider.

Controllable Feedback Visibility

As is discussed above, in one embodiment of the invention, every user inthe on-line community who is able to access a particular videopresentation can also view the submissions that other users from thecommunity provide relative to that presentation in real-time. In such anembodiment, the submissions from any user relative to the particularpresentation are presented to all other users currently or thereafterviewing the particular presentation, concurrently or nearly concurrentlywith the times at which the server receives the submissions. However,under some circumstances, the video presentation provider might not wantthe submissions of one user to be visible to another user. For example,the video presentation provider might not want the opinions of each userto be tainted or unduly influenced by the opinions of other usersviewing and commenting on the same video presentation.

Therefore, in an alternative embodiment of the invention, the serverprovides an option in a user interface that the video presentationprovider can select in order to specify that comments received from oneuser are not to be made visible to other users. In response to theprovider's election of this option, the server still presents controlsthrough which users can submit time point-specific comments (includingvia categorized submission buttons), but the server does not display alist of other users' comments or the information contained in bar graph130. In such an alternative embodiment, all of the users' textual,audio, and video submissions, as well as all of the categorizedsubmission information contained in bar graph 130, remain visible to thevideo presentation provider, but only to him. In one embodiment, theserver provides a mechanism through which the video presentationprovider can subsequently toggle this visibility setting, thereby eitherrevealing or hiding users' submissions relative to his presentation fromother users in the on-line community as the provider thinks best at thetime.

Categorized Viewing and Personalized Editions

As is discussed above, in one embodiment of the invention, users fromthe on-line community can select categorized submission buttons, such asbuttons 124, 126, and 128, in order to submit an opinion quicklyrelative to a specific time point in video presentation 102. Such asubmission can potentially be performed faster than by typing a textualcomment within freeform submission control 106, for example. Suchcategorized submissions are stored in association with the time pointsto which they pertain. In one embodiment, the server provides amechanism whereby a viewer can elect to watch only selected portions ofvideo presentation 102 that satisfy specified criteria. These criteriacan include a criterion that the portions to be viewed must beassociated with a specified threshold level of some category from thecategorized submissions.

The specified threshold can be in the form of an absolute quantity. Forexample, in one embodiment, a viewer can specify, through a userinterface, that he only wants to view portions of video presentation 102that span time intervals that contain at least 10 “funny” categorizedsubmissions—the portions relative to which at least 10 different usersin the on-line community previously selected button 124. The specifiedthreshold can be in the form of a proportion or percentage of totalviewers. For example, in one embodiment, a viewer can specify, through auser interface, that he only wants to view portions of videopresentation 102 that fall within time intervals for which at least 25%of all of the viewers of those time intervals submitted “funny”categorized submissions. The specified threshold can be in the form of aproportion of percentage of categorized submissions. For example, in oneembodiment, a viewer can specify, through a user interface, that he onlywants to view portions of video presentation 102 that fall within timeintervals for which at least 50% of the total categorized submissionsregistered within those time intervals were “funny” categorizedsubmissions (rather than categorized submissions from another categorylike “meh”). Additionally or alternatively, in one embodiment of theinvention, the video presentation provider can specify, through a userinterface, amounts of time before and/or after each threshold-satisfyingvideo portion to which the boundaries of presented content should beexpanded. For example, a video presentation provider might specify,through a user interface, that 20 seconds before and 5 seconds aftereach threshold-satisfying video portion should be shown in addition tothe content within the video portion itself.

In an embodiment, in response to receiving user-specified criteria suchas those described above, the server can cause only selected portions ofvideo presentation 102 that satisfy the criteria to be presented;portions that do not satisfy the specified criteria can be skipped over.In one embodiment, however, certain segments immediately precedingand/or following the portions that satisfy the criteria are alsopresented if those segments fall within the expanded temporal boundariesspecified by the video presentation provider, as is discussed above. Inthis manner, the video presentation provider can try to ensure thatinteresting portions of video presentation 102 will be supplemented withadjacent portions that are likely helpful to give the interestingportions context, even if those adjacent portions do not themselvessatisfy the specified criteria. In one embodiment, the server provides amechanism whereby a viewer who has specified such criteria, and who hasthereby essentially produced a customized and personalized edition ofvideo presentation 102, can persistently store that edition inconnection with that viewer's account. The viewer can later recall thestored edition (e.g., from a user interface such as the one describedabove in connection with FIG. 4) for future viewing. In one embodiment,rather than store separate copies of the actual video portions thatsatisfy the specified criteria in order to produce such a personalizededition, the server can instead simply store the specified criteria,which can be used at any time to re-create the personalized editionrelatively quickly.

Automatically Generated Categorized Editions

In one embodiment of the invention, various alternative editions ofvideo presentation 102 can be created automatically. For each particularcategory of the categorized submissions (i.e., for each categorycorresponding to one of buttons 124, 126, and 128), the server candetermine automatically which portions of video presentation 102received a least a specified quantity or a specified proportion ofcategorized submissions in that particular category. The server cancreate an edition specific to each particular category that containsonly the portions that satisfied the threshold relative to thatcategory. Such alternative editions can be selected and viewed by thosein the on-line community from a user interface similar to the oneillustrated in FIG. 1. In the user interface, each alternative editioncan be labeled with the category that the alternative edition features(e.g., the “funny” edition, the “meh” edition, etc.).

Audience Marketplace

As is discussed above, in one embodiment, video presentation 102 can betargeted to specific users or non-specific users who have specifiedattributes. In alternative embodiments, the server provides a mechanismthrough which a provider of video presentation 102 (the user whointroduces the corresponding video content item into the commentarysystem) can offer monetary compensation in exchange for the viewing ofhis video presentation by other users in the on-line community. In oneembodiment, this mechanism further enables the provider to specify theattributes of the users to whom the offer is to be made.

In one embodiment, in response to the video presentation providerinstructing the server to open an offer, the video server provides auser interface through which the video presentation provider can specifythe demographic attributes of the users to whom the offer is to be made.The user interface can contain a field into which the video presentationprovider can indicate a maximum quantity of viewers for which the offeris valid, and a maximum price that the video presentation provider iswilling to pay each such viewer. After the parameters of the offer havebeen specified, the server can send invitations (e.g., by e-mail) tovarious users who possess the specified attributes. The invitation caninclude a link to a web page through which each user can accept ordecline the invitation. In one embodiment, the server initially sendsout no more than the maximum specified quantity of invitations, and onlysends out additional invitations to additional users if one or moreusers to whom invitations were already sent decline those invitations.In one embodiment, if the server determines that there is aninsufficient quantity of registered users that possess the specifiedattributes, taking into account those who have declined, then the servercan notify the video presentation provider of this fact. The server canthen permit the video presentation provider to modify the attributesthat future invitees must possess and/or to modify the total quantity ofviewers sought in the offer.

In one embodiment, each invitation can disclose, up front, to eachinvitee, the maximum amount that the invitee will be paid in exchangefor viewing the video presentation. In an alternative embodiment, theinvitations do not disclose any amount, but instead, the accept/declineweb page that each invitee can access from his invitation's linkincludes a field through which that invitee can specify the minimumamount that he is willing to accept in exchange for his viewing of thevideo presentation. In such an alternative embodiment, if the inviteespecifies an amount that is greater than the maximum per-invitee amountthat the video presentation provider is willing to pay, then the inviteecan be asked to try to submit a lower amount if he wants to participatein the offer. In one embodiment, if the invitee specifies an amount thatis no greater than the maximum per-invitee amount, then the serverstores a record indicating that the invitee accepted the offer. Therecord indicates the agreed-upon amount that the invitee is to be paidfor his viewing of the video presentation. In one embodiment, eachinvitation can specify additional terms, such as that at least aspecified quantity of the video presentation must be viewed by theinvitee in order for the invitee to qualify for payment, and/or that theinvitee is required to register at least a specified quantity ofsubmissions in order for the invitee to qualify for payment.

Although an embodiment above involves the server inviting prospectiveviewers who afterward may indicate the minimum amount that they arewilling to accept to participate in the offer, in an alternativeembodiment, each registered user may specify, as a user profileattribute stored in connection with his account, a minimum quantity thathe is willing to accept to participate in any offer. In this manner,prospective viewers can essentially “bid” for invitations. In such anembodiment, rather than specifying an amount that he is willing to payper invitee when specifying the parameters of the offer, the videopresentation provider can instead specify a total pooled amount that heis willing to pay an audience in aggregate, without concern for theexact amount that each acceptant ends up being paid. The server can thenbegin submitting invitations to qualifying users beginning with thosewho have specified the lowest acceptable amounts in their profiles,thereby prospectively obtaining more bang for the video provider's buck.The server can cease sending invitations either when a specifiedquantity of invitees have accepted the offer, or when the serverdetermines that the offer's specified minimum quantity of participantscannot be achieved given the minimum amounts specified by thosequalified users who have not yet been invited. In the latter case, theserver can permit the video presentation provider to modify theattributes that future invitees must possess, to modify the totalquantity of viewers sought in the offer, and/or to modify the totalpooled amount that he is willing to pay the audience in aggregate.

In one embodiment of the invention, each invitation specifies that theoffer is contingent upon a specified minimum quantity of users acceptingthe offer, and that the offer can be canceled at the video presentationprovider's discretion if this contingency is not satisfied. In oneembodiment of the invention, instead of specifying a minimum quantity ofviewers who must accept the offer, the video presentation provider canrequest that the server obtain as many qualified viewers aspossible—optionally to a specified maximum—using the total pooled amountthat he is willing to pay the audience in aggregate. In such anembodiment, the server continues to invite qualified users, startingwith those specifying the lowest “bid” amounts, until the total pooledamount is exhausted, or until there are no further qualified users toinvite, or until the specified maximum quantity of invitees has acceptedthe offer, if such a maximum has been specified.

In one embodiment, the server keeps track of each offer acceptant whoviews the video presentation to which the offer pertains. In oneembodiment, acceptants are permitted to view the video presentation andsatisfy the offer's requirements even if not all of the offer'sacceptants have been certainly ascertained yet. In one embodiment, theserver tracks whether each offer acceptant has fulfilled the offer'sstated obligations (e.g., watch at least a specified amount of thepresentation, submit at least a specified quantity of comments, etc.).The server can express, to each acceptant, the obligations that theacceptant has yet to fulfill in order to receive the promised payment.In one embodiment, upon determining that a particular acceptant hasfulfilled all of the offer's stated obligations, the server canautomatically transfer the agreed-upon payment for that acceptant fromthe video presentation provider's monetary account (e.g., bank, credit,etc.) to the acceptant's monetary account. The server can automaticallynotify the video presentation provider regarding the details of such atransaction whenever such a transaction occurs.

In one embodiment of the invention, the server also can charge the videopresentation provider in connection with various events that can takeplace during the conduct of an audience-based offer of the kinddescribed above. For example, for each invitation that the server sends,the server can charge the video presentation provider's account someagreed-upon amount. For another example, for each acceptant thatfulfills all of the offer's obligations, the server can charge the videopresentation provider's account some agreed-upon amount. The server cantransfer such amounts to an account owned by the operator of thecommentary system.

In one embodiment, potentially by satisfying some test to verifylegitimate credentials, certain registered users of the video commentarysystem can obtain an “expert” designation in a specified field. Such adesignation can be associated with and publicly indicated within thatuser's account. A distinctive icon may be placed next to that user'savatar and/or identifier wherever it appears to signify to other thatthe user is an expert. In such an embodiment, a video presentationprovider's offer can request a specified quantity of experts as aparameter. In response to such a request, the server can attempt toinvite qualified users having the expert designation. It may beunderstood that the cost of recruiting an expert to view a videopresentation may be significantly higher than that for recruiting astandard user. In one embodiment, the server provides a mechanismthrough which a video presentation provider can attempt to recruit suchan expert, or any individual, to create an account with the commentarysystem. In such an embodiment, a user interface includes fields intowhich the video presentation provider can input contact information(e.g., e-mail address, phone number, Facebook or Twitter identity, etc.)for a potential recruit who does not yet have an account with thecommentary system. The user interface can also include a field intowhich the video presentation provider can specify some monetary amountthat is to be offered to the potential recruit as motivation orinducement to create the account. The user interface can also includefields into which the video presentation provider can specify one ormore tasks that the provider requires the potential recruit to perform(e.g., watch at least a specified amount of a specified videopresentation, submit at least a specified quantity of submissionsrelative to the specified video presentation, etc.) in order to qualifyto receive the specified money reward. The server can then send anotification to the potential recruit through a channel appropriate tothe type of contact information provided. The notification can informthe potential recruit about the offered monetary reward and the tasksthat need to be performed to obtain that reward. The notification cancontain a link which, when activated, causes the potential recruit'sInternet browser application to load a web page through which thepotential recruit can create a new account with the commentary system.The server can transfer the monetary award to the recruit's monetaryaccount automatically upon detecting that the recruit has performed allof the tasks specified in the notification. As is discussed above, inone embodiment of the invention, a user can automatically receive theexpert designation due to that user's comments receiving at least aspecified threshold quantity of positive votes (in the aggregate, withnegative votes offsetting the positive ones).

In one embodiment of the invention, a user who has received the “expert”designation can use a control of the commentary system to create aspecial consultant web page that other users in the on-line communitycan view. Such a consultant page can include information pertaining tothe expert user's particular field of expertise, and also can includeinformation regarding the expert user's customary fees or rates that heexpects to be paid in exchange for viewing and/or critiquing the videopresentations of other users. Other users in the on-line communitytherefore can be made aware of the expert's availability and of how muchthose users ought to offer in compensation for the expert's services.

Social Media Integration

In one embodiment of the invention, the server provides a mechanismwhereby users from the on-line community who register accounts with thevideo commentary system described above can optionally link thoseaccounts with others of their accounts on other sites, such as socialmedia sites. Such social media sites can include those provided byFacebook and Google, for example. In one embodiment, the user can allowthe video commentary system and its server to access specified personalinformation from that user's account on the social media site. In thismanner, the video commentary system can acquire information about theuser that the system might not otherwise possess. In one embodiment, thevideo commentary system can use such information acquired from socialmedia sites, such as a user's likes, the places a user has been, and/ora user's social contacts, as attributes that can be used fordemographical segmentation, targeted video distribution, invitationqualification, etc.

In one embodiment of the invention, aspects of the user interface shownin FIG. 1 can be embedded into the web pages of other sites such associal media sites. For example, video presentation 102 and buttons 124,126, and 128 can be embedded into a social media site's web page, sothat the video commentary system's server can receive submissionsdirectly from those social media sites. In some embodiments of theinvention, these and various other aspects and elements of the userinterface and/or the comment bubble window can be embedded into variousother web sites, regardless of the intent of those web sites. In oneembodiment, the commentary system provides a control which, whenactivated, causes HTML code representing the comment bubble window,including the buttons, to be copied to the clipboard of the user'scomputing device so that the user can easily paste that HTML code intohis own web page on his own web site.

In one embodiment of the invention, the user interface shown in FIG. 1additionally contains a control that enables a user from the on-linecommunity to share a submission that he made using the commentary system(e.g., by selecting one of buttons 124, 126, or 128, or by entering atextual, video, or audio submission through control 106) on various onesof his social media web pages. For example, after receiving a submissionfrom a user, the video commentary system server can present an interfacecontrol that lists various social media sites and invites the user to“share” the submission that he just entered. In response to the userselecting one or more of the social media sites from the list, the videocommentary system server can instruct the server of the selected socialmedia sites to inject, onto the user's pages on those sites, entries(e.g., wall posts) that indicate that the user just entered a submissionon the video commentary site. The entries can show, among otherelements, a thumbnail of the video presentation relative to which thesubmission was entered, and some indication of the content of thesubmission itself. In one embodiment of the invention, such entries alsoare or contain hyperlinks that will direct the browser of the selectorthereof to the video commentary site web page that contains the commentsubmission interface for that specified video presentation.

In one embodiment, mechanisms are also provided for sharing a submissionwith selected social contacts gleaned through social media sites. Forexample, a user interface containing the video presentation and/orsubmission can contain a control labeled “share with friends.” A user'sselection of the link can cause messages to be sent to at least a subsetof the user's contacts known from the social media site. In oneembodiment, the user can be presented with a list of his contacts fromwhich he can select the contacts to which the messages are to be sent.The messages can take the form of e-mail messages directed to thecontacts' e-mail addresses, and/or postings made to the social mediasite web pages belonging to those contacts. Each such message cancontain, for example, a thumbnail sample of the relevant videopresentation, an indication of the content of the user's submission,and/or an invitation to view the video presentation by visiting thevideo commentary system site. A young athlete's parent might use such afeature, for example, to invite scholastic athletic program recruitersto view a video presentation of his child's athletic performance.

In one embodiment, the server keeps track of the users to whom suchmessages have been sent. The server can include, in the user interfacein which the video presentation is displayed, a control through whichviewers can obtain a list of users to whom the messages were sent—thelist of friends with whom the video presentation has been shared. Aviewer can use this information to decide whether to allow other viewersof the video presentation to see the submissions that he posts relativeto the video presentation.

In one embodiment, the server provides a mechanism whereby a potentialuser's social media site account (e.g., Facebook, Twitter, Google+,etc.) can be linked to the user's commentary system account either atregistration or at a subsequent time. In one embodiment, the linking ofthe user's social media site account to the user's commentary systemaccount enables the user to access his commentary system account afterauthenticating with his linked social media site account while avoidingthe need to re-authenticate with the commentary system account (i.e.,single-sign on functionality). In one embodiment, the user can giveconsent to the commentary system to read the user's attributeinformation from the social media site and use that attributeinformation for various purposes (e.g., assignment to demographiccategories).

In one embodiment, each user can be required to log-in to the commentarysystem by providing a username and password. In an alternativeembodiment, a user can authenticate with the commentary system byaccessing the system from an e-mail domain that is recognized by thesystem. For example, in one embodiment, a school or other organizationcan pay the operator of the commentary system for the privilege ofhaving users belonging to its e-mail domain granted access to thecommentary system. In response to such an arrangement, the server of thecommentary system can send out e-mail invitations to e-mail addressesbelonging to the specified e-mail domain. Each such invitation cancontain a link that can be used by the invitation recipient to accessthe commentary system without supplying a password as part of anauthentication process.

As is discussed above, in various embodiments of the invention, variousinvitations can be sent to users for various purposes, such as, forexample, to view a video presentation or to register with the commentarysystem. In one embodiment of the invention, any of all such invitationscan be sent in the form of “tweets” made to users' Twitter accounts. Inone embodiment of the invention, in response to certain kinds ofinvitations being made, a tweet describing that invitation, andpotentially identifying the invitee and/or invitor, can be broadcastedto one or more Twitter users' accounts. In one embodiment of theinvention, the commentary system provides special account designationsto notable or famous commentary system users such as celebrities,professional athletes, politicians, etc. The commentary system can causea tweet to be broadcasted to one or more Twitter users' accounts inresponse to such a specially designated user posting a submissionrelative to a video presentation. That tweet can identify the user aswell as the content of his submission. Such a tweet can be broadcastedfrom the specially designated user's own Twitter account, provided thatthe user has consented to allow the commentary system to make tweetsfrom his Twitter account. In one embodiment, tweets are broadcasted onlyto Twitter users who have specified their Twitter account identifiers intheir commentary system account profile information, and/or only tousers who have elected to subscribe to such tweets. Such tweets caninclude a snippet of the video presentation to which they pertain, suchas a video snippet that begins at the time point to which the tweetedsubmission pertains, and that lasts for a specified duration (e.g., 5seconds). Such tweets can include hyperlinks to the web page containingthe video presentation and/or hyperlinks to a web page through whichusers can register new accounts with the commentary system.

Tracking Popular and Related Submission Categories

As is discussed above, in one embodiment of the invention, categorizedsubmission buttons, such as buttons 124, 126, and 128, can be customizedby the video presentation provider. The categories, or labels, for thesebuttons can be specified through control 312 of the interface shown inFIG. 3, for example. In one embodiment of the invention, each time thata set of categories is specified in this way, the server increments astored tally for each such category. If it is the first time that aparticular category has been specified, then the server can initialize anew stored tally for that particular category. In this manner, theserver can keep track of which specified categories are the mostpopular. The popular categories may be indicative of the kinds ofqualities about which video presentation providers tend to be the mostconcerned regarding the contents of their video presentations. In oneembodiment, for each specified set of categories, the server also storesdata that maps the categories in that set to each other. In this manner,the server can keep track of which categories tend to be specified mostoften in the same sets as other categories.

The server can use such category tracking data in various ways. Forexample, in the user interface of FIG. 3, the server can show a “cloud”of categories from which the user can select to specify the categoriesusing control 312. Within the cloud, categories that are more popularcan appear in a larger font size, while categories that are less popularcan appear in a smaller font size. Additionally or alternatively, thecategory tracking data can be used to auto-complete the typing ofcategories within the field of control 312. Additionally oralternatively, the category tracking data can be used to suggestadditional oft-related categories after the user has specified acategory using control 312.

In one embodiment, instead of or in addition to a title for a videopresentation, the user interface permits the video presentation providerto specify a textual goal—something that the provider hopes to achieveby receiving feedback in the form of submissions. In such an embodiment,the server can store associations between such goals and the sets ofcategories that are specified in connection with such goals. The servercan use such data to determine, for each goal, the categories that tendto be most popular within sets of categories specified by various usersfor that goal. Thereafter, in response to a video presentation providerspecifying a goal for his video presentation, the server can recommendone or more of the most popular goals that have been associated withthat same goal by other providers in the past.

Example Flow

FIG. 5 is a flow diagram that illustrates a technique through which asubmission can be associated with a current time point in a videopresentation, according to an embodiment of the invention. Althoughcertain operations are illustrated in FIG. 5, alternative embodiments ofthe invention can involve more, fewer, or different steps than thoseshown by way of example. In block 502, a computing device presents auser interface that contains a freeform submission control and a set ofcategorized submission controls. In block 504, the device begins playinga video presentation in the user interface.

In block 506, the device determines whether a new submission for thevideo presentation has been received from any user in an on-linecommunity. For example, the device can receive data over the Internetfrom a server indicating that a new submission for the videopresentation has been received at the server. If a new submission forthe video presentation has been received, then control passes to block514. Otherwise, control passes to block 508.

In block 508, the device determines whether the device's user hasselected the freeform submission control. If so, then control passes toblock 516. Otherwise, control passes to block 510.

In block 510, the device determines whether the device's user hasselected any of the categorized submission controls. If so, then controlpasses to block 518. Otherwise, control passes to block 512.

In block 512, the device continues to play the video presentation.Control passes back to block 506.

In block 514, the device updates the user interface to include the newsubmission and, potentially, the timestamp specifying the videopresentation time point to which the new submission pertains. This mayinclude adding a textual, video, or audio comment to a comment region ofthe user interface if the submission was made using the freeformsubmission control. This may alternative include refreshing acategorized submission bar graph if the submission was made using one ofthe categorized submission controls. Control passes back to block 506.

In block 516, the device receives a freeform submission through the userinterface. This can include receiving typed text or recording video oraudio content through the device's input subsystems. Control passes toblock 522.

In block 518, the device receives a selection of one of the categorizedsubmission controls through the user interface. In block 520, the devicegenerates a submission that corresponds to the category that thecategorized submission control represents. Control passes to block 522.

In block 522, the device determines a current time point correspondingto a frame of the video presentation that is currently being shown inthe user interface. In block 524, the device sends the current timepoint, the submission, and the user's identity over the Internet to theserver. The server can responsively store a mapping between theseinformation items, and can push the new submission over the Internet toother computing devices. In block 526, the device updates the userinterface to include the new submission and, potentially, the timestampspecifying the video presentation time point to which the new submissionpertains. This may include adding a textual, video, or audio comment toa comment region of the user interface if the submission was made usingthe freeform submission control. This may alternative include refreshinga categorized submission bar graph if the submission was made using oneof the categorized submission controls. Control passes back to block506.

Hardware Overview

FIG. 6 is a simplified block diagram illustrating components of a systemenvironment 600 that may be used in accordance with an embodiment of thepresent invention. As shown, system environment 600 includes one or moreclient computing devices 602, 604, 606, 608, which are configured tooperate client applications including native client applications andpossibly other applications such as a web browser, or the like. Invarious embodiments, client computing devices 602, 604, 606, and 608 mayinteract with a server 612.

Client computing devices 602, 604, 606, 608 may be general purposepersonal computers (including, by way of example, personal computersand/or laptop computers running various versions of Microsoft Windowsand/or Apple Macintosh operating systems), cell phones or PDAs (runningsoftware such as Microsoft Windows Mobile and being Internet, e-mail,SMS, Blackberry, or other communication protocol enabled), and/orworkstation computers running any of a variety of commercially-availableUNIX or UNIX-like operating systems (including without limitation thevariety of GNU/Linux operating systems). Alternatively, client computingdevices 602, 604, 606, and 608 may be any other electronic device, suchas a thin-client computer, Internet-enabled gaming system, and/orpersonal messaging device, capable of communicating over a network(e.g., network 610 described below). Although exemplary systemenvironment 600 is shown with four client computing devices, any numberof client computing devices may be supported. Other devices such asdevices with sensors, etc. may interact with server 612.

System environment 600 may include a network 610. Network 610 may be anytype of network familiar to those skilled in the art that can supportdata communications using any of a variety of commercially-availableprotocols, including without limitation TCP/IP, SNA, IPX, AppleTalk, andthe like. Merely by way of example, network 610 can be a local areanetwork (LAN), such as an Ethernet network, a Token-Ring network and/orthe like; a wide-area network; a virtual network, including withoutlimitation a virtual private network (VPN); the Internet; an intranet;an extranet; a public switched telephone network (PSTN); an infra-rednetwork; a wireless network (e.g., a network operating under any of theIEEE 702.11 suite of protocols, the Bluetooth protocol known in the art,and/or any other wireless protocol); and/or any combination of theseand/or other networks.

System environment 600 also includes one or more server computers 612which may be general purpose computers, specialized server computers(including, by way of example, PC servers, UNIX servers, mid-rangeservers, mainframe computers, rack-mounted servers, etc.), server farms,server clusters, or any other appropriate arrangement and/orcombination. In various embodiments, server 612 may be adapted to runone or more services or software applications.

Server 612 may run an operating system including any of those discussedabove, as well as any commercially available server operating system.Server 612 may also run any of a variety of additional serverapplications and/or mid-tier applications, including HTTP servers, FTPservers, CGI servers, JAVA servers, database servers, and the like.Exemplary database servers include without limitation those commerciallyavailable from Oracle, Microsoft, Sybase, IBM and the like.

System environment 600 may also include one or more databases 614, 616.Databases 614, 616 may reside in a variety of locations. By way ofexample, one or more of databases 614, 616 may reside on anon-transitory storage medium local to (and/or resident in) server 612.Alternatively, databases 614, 616 may be remote from server 612, and incommunication with server 612 via a network-based or dedicatedconnection. In one set of embodiments, databases 614, 616 may reside ina storage-area network (SAN) familiar to those skilled in the art.Similarly, any necessary files for performing the functions attributedto server 612 may be stored locally on server 612 and/or remotely, asappropriate. In one set of embodiments, databases 614, 616 may includerelational databases that are adapted to store, update, and retrievedata in response to SQL-formatted commands.

FIG. 7 is a simplified block diagram of a computer system 700 that maybe used in accordance with embodiments of the present invention. Forexample server 612 or clients 602, 604, 606, or 608 may be implementedusing a system such as system 700. Computer system 700 is showncomprising hardware elements that may be electrically coupled via a bus724. The hardware elements may include one or more central processingunits (CPUs) 702, one or more input devices 704 (e.g., a mouse, akeyboard, etc.), and one or more output devices 706 (e.g., a displaydevice, a printer, etc.). Computer system 700 may also include one ormore storage devices 708. By way of example, the storage device(s) 708may include devices such as disk drives, optical storage devices, andsolid-state storage devices such as a random access memory (RAM) and/ora read-only memory (ROM), which can be programmable, flash-updateableand/or the like.

Computer system 700 may additionally include a computer-readable storagemedia reader 712, a communications subsystem 714 (e.g., a modem, anetwork card (wireless or wired), an infra-red communication device,etc.), and working memory 718, which may include RAM and ROM devices asdescribed above. In some embodiments, computer system 700 may alsoinclude a processing acceleration unit 716, which can include a digitalsignal processor (DSP), a special-purpose processor, and/or the like.

Computer-readable storage media reader 712 can further be connected to acomputer-readable storage medium 710, together (and, optionally, incombination with storage device(s) 708) comprehensively representingremote, local, fixed, and/or removable storage devices plus storagemedia for temporarily and/or more permanently containingcomputer-readable information. Communications system 714 may permit datato be exchanged with network 610 and/or any other computer describedabove with respect to system environment 600.

Computer system 700 may also comprise software elements, shown as beingcurrently located within working memory 718, including an operatingsystem 720 and/or other code 722, such as an application program (whichmay be a client application, Web browser, mid-tier application, RDBMS,etc.). In an exemplary embodiment, working memory 718 may includeexecutable code and associated data structures used for a collaborativereal-time on-line timestamped-commentary video content system asdescribed above. It should be appreciated that alternative embodimentsof computer system 700 may have numerous variations from that describedabove. For example, customized hardware might also be used and/orparticular elements might be implemented in hardware, software(including portable software, such as applets), or both. Further,connection to other computing devices such as network input/outputdevices may be employed.

Storage media and computer-readable media for containing code, orportions of code, can include any appropriate media known or used in theart, including storage media and communication media, such as but notlimited to volatile and non-volatile (non-transitory), removable andnon-removable media implemented in any method or technology for storageand/or transmission of information such as computer-readableinstructions, data structures, program modules, or other data, includingRAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM,digital versatile disk (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, data signals, data transmissions, or any other mediumwhich can be used to store or transmit the desired information and whichcan be accessed by a computer.

Although specific embodiments of the invention have been described,various modifications, alterations, alternative constructions, andequivalents are also encompassed within the scope of the invention.Embodiments of the present invention are not restricted to operationwithin certain specific data processing environments, but are free tooperate within a plurality of data processing environments.Additionally, although embodiments of the present invention have beendescribed using a particular series of transactions and steps, it shouldbe apparent to those skilled in the art that the scope of the presentinvention is not limited to the described series of transactions andsteps.

Further, while embodiments of the present invention have been describedusing a particular combination of hardware and software, it should berecognized that other combinations of hardware and software are alsowithin the scope of the present invention. Embodiments of the presentinvention may be implemented only in hardware, or only in software, orusing combinations thereof.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that additions, subtractions, deletions, and other modificationsand changes may be made thereunto without departing from the broaderspirit and scope.

What is claimed is:
 1. A computer-implemented method comprising:presenting a graphical interface that includes a motion videopresentation and a plurality of user-selectable interface elements;receiving, through the graphical interface, at a first moment during thepresentation, a first selection of a first interface element of theplurality of interface elements; in response to receiving the firstselection, storing first data that maps a first category, correspondingto the first interface element, to a first time point at which themotion video presentation was being presented at the first moment; andgenerating, based at least in part on the first data, a first trackinggraphical element that indicates at least a first quantity of times thatthe first interface element has been selected during a first timeinterval that includes the first time point.
 2. The computer-implementedmethod of claim 1, further comprising: receiving, through the graphicalinterface, at a second moment during the presentation, a secondselection of a second interface element of the plurality of interfaceelements; in response to receiving the second selection, storing seconddata that maps a second category, corresponding to the second interfaceelement but not the first interface element, to a second time point atwhich the motion video was being presented at the second moment; andgenerating, based at least in part on the first data and the seconddata, a second tracking graphical element that indicates at least (a)the first quantity of times that the first interface element has beenselected during the first time interval that includes the first timepoint and (b) a second quantity of times that the second interfaceelement has been selected during a second time interval that includesthe second time point but not the first time point.
 3. Thecomputer-implemented method of claim 2, wherein the first interfaceelement is a first color; wherein the second interface element is asecond color that differs from the first color; wherein the secondtracking graphical element includes a first quantity indicator that isthe first color and that indicates the first quantity; and wherein thesecond tracking graphical element includes a second quantity indicatorthat is the second color and that indicates the second quantity.
 4. Thecomputer-implemented method of claim 3, wherein the second trackinggraphical element is a bar chart; wherein the first quantity indicatoris a bar, in the bar chart, having a size that is based on the firstquantity; wherein the second quantity indicator is a bar, in the barchart, having a size that is based on the second quantity; wherein thefirst interface element is a first button having a first label; andwherein the second interface element is a second button having a secondlabel that differs from the first label.
 5. The computer-implementedmethod of claim 2, wherein receiving the first selection comprisesreceiving the first selection over a network from a first computingdevice; and wherein receiving the second selection comprises receivingthe second selection over a network from a second computing device thatis separate from the first computing device.
 6. The computer-implementedmethod of claim 2, further comprising: in response to generating thesecond tracking graphical element, sending data representing the secondtracking graphical element over a network to a first computing devicethat is presenting the graphical interface; and in response togenerating the second tracking graphical element, sending datarepresenting the second tracking graphical element over a network to asecond computing device that is separate from the first computing deviceand that is also presenting the graphical interface.
 7. Thecomputer-implemented method of claim 1, further comprising: generatingweb page data that represents a web page that includes a user interfacecontaining both the motion video presentation and the first graphicaltracking element; and sending the web page data over a network to aplurality of computing devices.
 8. The computer-implemented method ofclaim 1, further comprising: receiving a first textual comment throughthe graphical interface at a second moment during the presentation; inresponse to receiving the first textual comment, storing second datathat maps the first textual comment to a second time point at which themotion video was being presented at the second moment; and updating theuser interface to include both the first textual comment and a firsttimestamp that indicates that the first textual comment pertains to thesecond time point.
 9. The computer-implemented method of claim 8,further comprising: receiving a second textual comment through thegraphical interface at a third moment during the presentation; inresponse to receiving the second textual comment, storing third datathat maps the second textual comment to a third time point at which themotion video was being presented at the third moment; and updating theuser interface to include the first textual comment, the second textualcomment, the first timestamp, and a second timestamp that indicates thatthe second textual comment pertains to the third time point.
 10. Thecomputer-implemented method of claim 1, further comprising: receiving,through the graphical interface, at a second moment during thepresentation, a second selection of the first interface element; inresponse to receiving the second selection, storing second data thatmaps the first category to a second time point at which the motion videowas being presented at the second moment; and generating, based at leastin part on the first data and the second data, a second trackinggraphical element that indicates at least (a) the first quantity oftimes that the first interface element has been selected during thefirst time interval that includes the first time point and (b) a secondquantity of times that the first interface element has been selectedduring a second time interval that includes the second time point butnot the first time point.
 11. The computer-implemented method of claim1, further comprising: receiving, through the graphical interface, at asecond moment during the presentation, a second selection of the firstinterface element; in response to receiving the second selection,storing second data that maps the first category to a second time pointat which the motion video was being presented at the second moment;determining that both the first time point and the second time pointoccur within the first time interval; in response to determining thatboth the first time point and the second time point occur within thefirst time interval, incrementing the first quantity; and afterincrementing the first quantity, generating, based at least in part onthe first data and the second data, a second tracking graphical elementthat indicates the first quantity of times that the first interfaceelement has been selected during the first time interval that includesboth the first time point and the second time point.
 12. Thecomputer-implemented method of claim 1, further comprising: receiving amotion video recording over a network from a particular computingdevice; receiving, over the network, from the particular computingdevice, category data that defines the plurality of user-selectableinterface elements; storing data that maps the motion video recordingand the category data to a particular uniform resource locator; andgenerating the user interface based at least in part on the motion videorecording and the category data.
 13. A non-transitory computer-readablestorage medium storing instructions which, when executed by one or moreprocessors, cause the processors to perform operations comprising:presenting a graphical interface that includes a motion videopresentation and a plurality of user-selectable interface elements;receiving, through the graphical interface, at a first moment during thepresentation, a first selection of a first interface element of theplurality of interface elements; in response to receiving the firstselection, storing first data that maps a first category, correspondingto the first interface element, to a first time point at which themotion video presentation was being presented at the first moment; andgenerating, based at least in part on the first data, a first trackinggraphical element that indicates at least a first quantity of times thatthe first interface element has been selected during a first timeinterval that includes the first time point.
 14. The non-transitorycomputer-readable storage medium of claim 13, wherein the operationsfurther comprise: receiving, through the graphical interface, at asecond moment during the presentation, a second selection of a secondinterface element of the plurality of interface elements; in response toreceiving the second selection, storing second data that maps a secondcategory, corresponding to the second interface element but not thefirst interface element, to a second time point at which the motionvideo was being presented at the second moment; and generating, based atleast in part on the first data and the second data, a second trackinggraphical element that indicates at least (a) the first quantity oftimes that the first interface element has been selected during thefirst time interval that includes the first time point and (b) a secondquantity of times that the second interface element has been selectedduring a second time interval that includes the second time point butnot the first time point; wherein the first interface element is a firstcolor; wherein the second interface element is a second color thatdiffers from the first color; wherein the second tracking graphicalelement includes a first quantity indicator that is the first color andthat indicates the first quantity; wherein the second tracking graphicalelement includes a second quantity indicator that is the second colorand that indicates the second quantity; wherein the second trackinggraphical element is a bar chart; wherein the first quantity indicatoris a bar, in the bar chart, having a size that is based on the firstquantity; wherein the second quantity indicator is a bar, in the barchart, having a size that is based on the second quantity; wherein thefirst interface element is a first button having a first label; andwherein the second interface element is a second button having a secondlabel that differs from the first label.
 15. The non-transitorycomputer-readable storage medium of claim 13, wherein the operationsfurther comprise: receiving, through the graphical interface, at asecond moment during the presentation, a second selection of a secondinterface element of the plurality of interface elements; in response toreceiving the second selection, storing second data that maps a secondcategory, corresponding to the second interface element but not thefirst interface element, to a second time point at which the motionvideo was being presented at the second moment; generating, based atleast in part on the first data and the second data, a second trackinggraphical element that indicates at least (a) the first quantity oftimes that the first interface element has been selected during thefirst time interval that includes the first time point and (b) a secondquantity of times that the second interface element has been selectedduring a second time interval that includes the second time point butnot the first time point; receiving a first textual comment through thegraphical interface at a second moment during the presentation; inresponse to receiving the first textual comment, storing second datathat maps the first textual comment to a second time point at which themotion video was being presented at the second moment; updating the userinterface to include both the first textual comment and a firsttimestamp that indicates that the first textual comment pertains to thesecond time point; receiving a second textual comment through thegraphical interface at a third moment during the presentation; inresponse to receiving the second textual comment, storing third datathat maps the second textual comment to a third time point at which themotion video was being presented at the third moment; and updating theuser interface to include the first textual comment, the second textualcomment, the first timestamp, and a second timestamp that indicates thatthe second textual comment pertains to the third time point.
 16. Thenon-transitory computer-readable storage medium of claim 13, wherein theoperations further comprise: receiving, through the graphical interface,at a second moment during the presentation, a second selection of thefirst interface element; in response to receiving the second selection,storing second data that maps the first category to a second time pointat which the motion video was being presented at the second moment; andgenerating, based at least in part on the first data and the seconddata, a second tracking graphical element that indicates at least (a)the first quantity of times that the first interface element has beenselected during the first time interval that includes the first timepoint and (b) a second quantity of times that the first interfaceelement has been selected during a second time interval that includesthe second time point but not the first time point.
 17. A systemcomprising: one or more processors; and a non-transitorycomputer-readable storage memory storing instructions for causing theone or more processors to: present a graphical interface that includes amotion video presentation and a plurality of user-selectable interfaceelements; receive, through the graphical interface, at a first momentduring the presentation, a first selection of a first interface elementof the plurality of interface elements; store, in response to receivingthe first selection, first data that maps a first category,corresponding to the first interface element, to a first time point atwhich the motion video presentation was being presented at the firstmoment; and generate, based at least in part on the first data, a firsttracking graphical element that indicates at least a first quantity oftimes that the first interface element has been selected during a firsttime interval that includes the first time point.
 18. The system ofclaim 17, wherein non-transitory computer-readable storage memory storesinstructions for causing the one or more processors to: receive, throughthe graphical interface, at a second moment during the presentation, asecond selection of a second interface element of the plurality ofinterface elements; store, in response to receiving the secondselection, second data that maps a second category, corresponding to thesecond interface element but not the first interface element, to asecond time point at which the motion video was being presented at thesecond moment; and generate, based at least in part on the first dataand the second data, a second tracking graphical element that indicatesat least (a) the first quantity of times that the first interfaceelement has been selected during the first time interval that includesthe first time point and (b) a second quantity of times that the secondinterface element has been selected during a second time interval thatincludes the second time point but not the first time point; wherein thefirst interface element is a first color; wherein the second interfaceelement is a second color that differs from the first color; wherein thesecond tracking graphical element includes a first quantity indicatorthat is the first color and that indicates the first quantity; whereinthe second tracking graphical element includes a second quantityindicator that is the second color and that indicates the secondquantity; wherein the second tracking graphical element is a bar chart;wherein the first quantity indicator is a bar, in the bar chart, havinga size that is based on the first quantity; wherein the second quantityindicator is a bar, in the bar chart, having a size that is based on thesecond quantity; wherein the first interface element is a first buttonhaving a first label; and wherein the second interface element is asecond button having a second label that differs from the first label.19. The system of claim 17, wherein non-transitory computer-readablestorage memory stores instructions for causing the one or moreprocessors to: receive, through the graphical interface, at a secondmoment during the presentation, a second selection of a second interfaceelement of the plurality of interface elements; store, in response toreceiving the second selection, second data that maps a second category,corresponding to the second interface element but not the firstinterface element, to a second time point at which the motion video wasbeing presented at the second moment; generate, based at least in parton the first data and the second data, a second tracking graphicalelement that indicates at least (a) the first quantity of times that thefirst interface element has been selected during the first time intervalthat includes the first time point and (b) a second quantity of timesthat the second interface element has been selected during a second timeinterval that includes the second time point but not the first timepoint; receive a first textual comment through the graphical interfaceat a second moment during the presentation; store, in response toreceiving the first textual comment, second data that maps the firsttextual comment to a second time point at which the motion video wasbeing presented at the second moment; update the user interface toinclude both the first textual comment and a first timestamp thatindicates that the first textual comment pertains to the second timepoint; receive a second textual comment through the graphical interfaceat a third moment during the presentation; store, in response toreceiving the second textual comment, third data that maps the secondtextual comment to a third time point at which the motion video wasbeing presented at the third moment; and update the user interface toinclude the first textual comment, the second textual comment, the firsttimestamp, and a second timestamp that indicates that the second textualcomment pertains to the third time point.
 20. The system of claim 17,wherein non-transitory computer-readable storage memory storesinstructions for causing the one or more processors to: receive, throughthe graphical interface, at a second moment during the presentation, asecond selection of the first interface element; store, in response toreceiving the second selection, second data that maps the first categoryto a second time point at which the motion video was being presented atthe second moment; and generate, based at least in part on the firstdata and the second data, a second tracking graphical element thatindicates at least (a) the first quantity of times that the firstinterface element has been selected during the first time interval thatincludes the first time point and (b) a second quantity of times thatthe first interface element has been selected during a second timeinterval that includes the second time point but not the first timepoint.